Skip to content

feat: add Organization evaluator (early access) - #138

Merged
slee430 merged 8 commits into
mainfrom
add-organization-evaluator
Jul 29, 2026
Merged

feat: add Organization evaluator (early access) #138
slee430 merged 8 commits into
mainfrom
add-organization-evaluator

Conversation

@slee430

@slee430 slee430 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the external-facing package for the Organization dimension text-complexity evaluator, mirroring the existing intertextuality package structure.

What's included

  • config.json — evaluator spec (id literacy.gla.organization), preprocessing (FK score), single LLM step, prompt sha256 pins, and fixtures tolerance
  • system.txt / user.txt — evaluation prompts
  • input_schema.json / output_schema.json — I/O contracts
  • fixtures.json — sniff-test cases drawn from unanimously human-agreed items in the annotated sniff test
  • example_notebook.ipynb — runnable demo + drift check + sniff test

Verification

  • Prompt sha256 hashes verified against config.json
  • example_notebook.ipynb runs end to end
  • Sniff test: 7/7 pass (5 exact, 2 adjacent within tolerance)

Notes

  • Output schema follows the public package shape (complexity_score + reasoning + details).
  • Fixtures are currently weighted toward slightly_complex; more very/exceedingly examples can be added later as expert-labeled data becomes available.

@slee430 slee430 self-assigned this Jul 22, 2026
@slee430 slee430 changed the title Add organization evaluator (external): config, prompts, schemas, fixt… feat: add Organization evaluator (early access) Jul 22, 2026
@adnanrhussain
adnanrhussain force-pushed the add-organization-evaluator branch from 73fa14f to 62b8c85 Compare July 22, 2026 16:50
@slee430 slee430 removed their assignment Jul 22, 2026
@aychi1
aychi1 requested a review from Copilot July 22, 2026 19:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new external-facing evaluator package for the Organization dimension under evals/literacy/qualitative-text-complexity/organization, intended to mirror the existing qualitative text complexity evaluator package structure.

Changes:

  • Added Organization evaluator prompt assets (system.txt, user.txt) and JSON I/O schemas.
  • Added evaluator configuration (config.json) and sniff-test fixtures (fixtures.json).
  • Added a runnable example notebook (example_notebook.ipynb) demonstrating evaluation + drift checking + fixture sniff testing.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
evals/literacy/qualitative-text-complexity/organization/config.json Defines evaluator metadata, preprocessing, LLM step, schema refs, and fixture settings (currently diverges from repo config schema).
evals/literacy/qualitative-text-complexity/organization/system.txt System prompt defining the Organization rubric and evaluation guardrails.
evals/literacy/qualitative-text-complexity/organization/user.txt User prompt template with {text}, {grade_level}, {fk_score} placeholders.
evals/literacy/qualitative-text-complexity/organization/input_schema.json Input contract for text + grade_level.
evals/literacy/qualitative-text-complexity/organization/output_schema.json Output contract for complexity_score, reasoning, and details.
evals/literacy/qualitative-text-complexity/organization/fixtures.json Sniff-test fixture inputs + expected labels (currently uses the wrong expected key name).
evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb Example workflow: load config/prompts, compute FK score, run structured output, and execute fixtures sniff test.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread evals/literacy/qualitative-text-complexity/organization/config.json
Comment thread evals/literacy/qualitative-text-complexity/organization/config.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/fixtures.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/fixtures.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/fixtures.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/fixtures.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/fixtures.json Outdated

@aychi1 aychi1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM, there are just a few minor changes needed.

Comment thread evals/literacy/qualitative-text-complexity/organization/config.json
Comment thread evals/literacy/qualitative-text-complexity/organization/config.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/config.json Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/fixtures.json Outdated
Seung Yeon Lee added 4 commits July 22, 2026 14:01
…ing-commons-org/evaluators into add-organization-evaluator

# Conflicts:
#	evals/literacy/qualitative-text-complexity/organization/config.json
#	evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb
#	evals/literacy/qualitative-text-complexity/organization/fixtures.json
@slee430

slee430 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

@aychi1 Thanks for the thorough review! I've addressed all the comments:

  • Set temperature to 1
  • Renamed the fixtures label key from complexity_level to complexity_score to match output_schema.json, and updated the notebook's sniff-test reader accordingly
  • Brought config.json into full conformance with config.schema.json: switched spec_version to $schema, added supported_grades, added type to the preprocessing and step entries, renamed fixtures.sniff_test_path to fixtures.path, and removed fields the schema doesn't allow (output_binding, the extra parser fields, the unused format_instructions placeholder, and the tracing block)
  • Stripped the notebook's execution artifacts so the strip-notebooks check passes

Re-ran the example notebook end to end — sniff test is now 7/7 exact. All 5 local checks pass.

@adnanrhussain adnanrhussain left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Comment thread evals/literacy/qualitative-text-complexity/organization/config.json
Comment thread evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb Outdated
Comment thread evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb Outdated
@esthersweon

Copy link
Copy Markdown
Contributor

Per Cindy's feedback, this should be renamed to "Organizational Structure" and all subdirectories and files should be renamed accordingly.

@aychi1 aychi1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks Seung Yeon!

@slee430

slee430 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

Renamed to Organizational Structure — folder (organizational-structure), evaluator id (literacy.gla.organizational_structure), step id, schema type (OrganizationalStructureDetails), and user-facing text in the notebook. Left system.txt untouched. @adnanrhussain would appreciate your review! Thanks

@aychi1

aychi1 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

@slee430 I took a look after the name changes, and it looks good to me!

@slee430
slee430 merged commit c110b3c into main Jul 29, 2026
6 checks passed
@slee430
slee430 deleted the add-organization-evaluator branch July 29, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants